home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / DEMO / TIEFE.M < prev    next >
Encoding:
Text File  |  1991-04-09  |  4.3 KB  |  135 lines

  1. MODULE Tiefe; (*$E MOS *)
  2.  
  3. (*
  4.  * Zeigt, wie man auf einfache Weise mit den Line A-Routinen Linien zeichnet.
  5.  *
  6.  * Einfach mal übersetzen und starten!
  7.  *)
  8.  
  9. (*
  10. Stand    Vers  Autor              Kennung Beschreibung
  11. -----------------------------------------------------------------------------
  12. 13.12.85 1.0   Volker Ritzhaupt   VR      Grundversion
  13. 21.11.87 1.1   VR / TT                    Atari-Version
  14. 14.01.91 1.2   TT                         Verw. von TABLE statt ASSEMBLER/DC.W
  15. ----------------------------------------------------------------------------*)
  16.  
  17. FROM SYSTEM IMPORT CADR;
  18.  
  19. FROM LineA IMPORT LineAVars, PtrLineAVars,
  20.                   Line, LineAVariables;
  21.  
  22. FROM GrafBase IMPORT WritingMode,
  23.                      Pnt;
  24.  
  25.  
  26. VAR     Data,
  27.         A,
  28.         B,
  29.         C,
  30.         D,
  31.         H,
  32.         I,
  33.         J,
  34.         L,
  35.         YCoord,
  36.         XCoord,
  37.         Counter,
  38.         X               :INTEGER;
  39.         Col             :CARDINAL;
  40.  
  41. CONST
  42.         Size=2;
  43.         XGuys=3;
  44.         YGuys=1;
  45.         XInit=20;       (* XInit und YInit bestimmen gemeinsam die *)
  46.         YInit=40;       (* Lage des Gesamtbildes.                  *)
  47.  
  48.  
  49. TABLE Daten:
  50.         998,0,9,14,9,12,11,11,22,12,34,11,37,12,37,4,42,3,51,4,52,6,
  51.         52,12,60,13,79,20,75,23,60,24,51,23,53,30,55,28,58,26,62,26,
  52.         65,27,67,30,67,38,65,46,61,52,57,51,58,60,63,67,67,80,68,87,
  53.         69,86,70,89,71,90,75,100,80,113,998,0,52,113,53,106,51,98,
  54.         53,96,52,95,52,92,69,86,52,92,52,95,70,89,52,95,52,92,55,90,
  55.         54,87,50,85,44,76,42,66,40,65,42,66,43,72,41,71,39,69,36,64,
  56.         37,61,48,59,37,61,36,59,39,57,49,56,40,57,42,55,50,53,48,48,
  57.         49,42,50,41,51,43,52,46,53,50,54,55,56,56,59,60,998,0,57,33,
  58.         60,29,62,29,65,35,63,40,62,45,60,48,58,45,61,40,61,33,58,35,
  59.         57,33,998,0,50,41,48,42,47,48,45,49,40,48,38,43,33,40,33,46,
  60.         33,37,33,40,38,43,38,47,40,32,44,31,49,32,50,41,998,0,50,41,
  61.         50,40,48,41,46,47,998,0,37,11,52,12,52,7,37,7,998,0,49,34,
  62.         49,27,47,20,46,17,44,18,43,19,42,17,39,20,37,29,38,33,40,34,
  63.         42,31,43,31,43,19,43,30,38,31,43,30,49,31,37,30,37,31,43,31,
  64.         41,32,41,30,998,0,9,14,23,20,34,21,31,30,28,27,23,27,20,32,
  65.         20,40,21,47,23,52,28,49,28,65,29,84,16,93,16,94,19,95,14,113,
  66.         998,0,29,84,41,88,45,87,53,86,51,85,41,87,35,83,998,0,40,83,
  67.         41,84,42,84,43,82,44,83,45,83,46,82,998,0,45,67,45,67,998,0,
  68.         45,69,46,69,998,0,46,71,48,71,998,0,47,74,48,74,998,0,48,77,
  69.         48,77,998,0,29,35,28,30,25,29,22,33,22,40,24,45,26,48,27,44,
  70.         25,43,25,36,27,35,29,35,998,0,34,21,39,15,45,14,48,15,52,20,
  71.         53,30,998,0,23,24,29,17,36,15,45,14,50,14,54,16,59,21,998,0,
  72.         28,24,33,16,40,15,45,14,50,16,55,20,56,25,998,0,35,18,40,15,
  73.         45,14,49,15,52,19,998,0,36,27,37,20,41,15,45,14,50,16,53,20,
  74.         998,0,36,27,37,20,41,16,42,15,45,16,47,15,49,16,50,22,51,26,
  75.         998,0,29,84,25,97,29,99,22,103,27,113,998,0,29,84,31,100,
  76.         34,110,35,113,998,0,29,84,30,90,31,95,33,101,39,94,42,91,
  77.         45,90,50,91,53,93,49,100,42,101,39,94,42,101,41,101,41,105,
  78.         39,113,41,105,48,103,50,110,51,113,998,0,48,103,49,100,998,0,
  79.         53,100,54,99,55,100,54,101,53,100,998,0,55,105,56,104,57,105,
  80.         56,106,55,105,
  81.         999,0;
  82.  
  83. PROCEDURE ReadData (VAR x: INTEGER);
  84.   TYPE PtrInt = POINTER TO INTEGER;
  85.   BEGIN
  86.     (*$A+*)
  87.     Data:= PtrInt (CADR (Daten) + VAL (LONGCARD, x*2))^;
  88.     (*$A=*)
  89.     INC (x)
  90.   END ReadData;
  91.  
  92.  
  93. VAR     vars: PtrLineAVars;
  94.  
  95. BEGIN
  96.   vars:=LineAVariables ();
  97.   WITH vars^ DO
  98.     writingMode:=replaceWrt;
  99.     plane1:=TRUE;
  100.     lineMask:=$FFFF;
  101.     lastLine:=TRUE;
  102.     clipping:=TRUE;
  103.     minClip:=Pnt(0,0);
  104.     maxClip:=Pnt(639,399);
  105.   END;
  106.   
  107.   YCoord:=YInit;
  108.   FOR H:=1 TO YGuys DO
  109.     XCoord:=XInit;
  110.     FOR I:=1 TO XGuys DO
  111.       Counter:=0;
  112.       REPEAT
  113.         ReadData(Counter);
  114.         A:=Data;
  115.         ReadData(Counter);
  116.         B:=Data;
  117.         IF A=998 THEN
  118.           ReadData(Counter);
  119.           C:=Data;
  120.           ReadData(Counter);
  121.           D:=Data;
  122.         END;
  123.         IF A<900 THEN
  124.           Line ( Pnt ((C+XCoord)*Size,(D+YCoord)*Size),
  125.                  Pnt ((A+XCoord)*Size,(B+YCoord)*Size) );
  126.           C:=A;
  127.           D:=B;
  128.         END;
  129.       UNTIL A=999;
  130.       XCoord:=XCoord+70;
  131.     END;
  132.     YCoord:=YCoord+122;
  133.   END;
  134. END Tiefe.
  135.